/*
 * Copyright (c) 2015, the DeltaSync# project. All Rights Reserved.
 * This project is a C# port of the JDeltaSync project:
 *     http://jdeltasync.googlecode.com
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

using System;

namespace PM.Net.DeltaSync {
    /**
     * Exception thrown by {@link DeltaSyncClient#login(string, string)} when
     * authentication fails.
     */
    public class AuthenticationException : DeltaSyncException {
        private string flowUrl;
        private string requestStatus;
        private string errorStatus;
    
        public AuthenticationException(string message)
               : base(message)
        {
            flowUrl       = null;
            requestStatus = null;
            errorStatus   = null;
        }
    
        public AuthenticationException(string flowUrl, string requestStatus, string errorStatus)
            : base("{flowUrl="       + flowUrl
                + ", requestStatus=" + requestStatus 
                + ", errorStatus="   + errorStatus + "}")
        {
            this.flowUrl       = flowUrl;
            this.requestStatus = requestStatus;
            this.errorStatus   = errorStatus;
        }
    
        public string getFlowUrl() {
            return flowUrl;
        }
        
        public string getRequestStatus() {
            return requestStatus;
        }
        
        public string getErrorStatus() {
            return errorStatus;
        }
    }
}
